﻿using System;

namespace Myotragus.Data.Util
{
	public class GuidNameGenerator : INameGenerator
	{
		public string CreateAssemblyName()
		{
			return CreateRandomName("Dyn_");
		}

		public string CreateTypeName(string nameSpace, string baseType)
		{
			if (!nameSpace.EndsWith("."))
				nameSpace += ".";

			if (baseType.StartsWith("I"))
				baseType = baseType.Remove(0, 1);

			return string.Concat(CreateRandomName(nameSpace), baseType);
		}

		public string CreateFieldName(string baseName)
		{
			return string.Format("{0}_{1}", baseName, PlainGuid());
		}

		public string CreateRandomName(string prefix)
		{
			return prefix + PlainGuid();
		}

		public string PlainGuid()
		{
			return Guid.NewGuid().ToString().Replace("-", "_");
		}
	}
}